package cate.game.play.skill.passive.hero;

import cate.game.play.config.PlayCfgArgs;
import cate.game.play.proce.action.ctx.ActionCtx;
import cate.game.play.proce.action.ctx.SkillActionCtx;
import cate.game.play.proce.turn.AppendTurn;
import cate.game.play.skill.Skill;
import cate.game.play.skill.passive.PassiveHandler;

/**
 * 出手时判断自身生命值：生命值高于50%时，对敌方后排单体连续攻击2次，共造成自身攻击力的500%，同时为自身附加【虚弱】，
 * 否则，为自身附加【坚韧】并在下一回合开始前对敌方生命值最低的单位造成自身攻击力330%的伤害，该伤害无视目标20%防御
 */
public class 血战沙场PH extends PassiveHandler {

	private String 检测技能标签;

	private int 检测血量;

	private int 技能1;

	private int 技能2;

	private int 追加技能;


	//检测技能标签=？？&检测血量=5000&技能1=？？&技能2=？？&追加技能=？？
	@Override
	public void parse(String code) {
		PlayCfgArgs args = new PlayCfgArgs(code);
		检测技能标签 = args.get("检测技能标签");
		检测血量 = args.getInt("检测血量", 0);
		技能1 = args.getInt("技能1", 0);
		技能2 = args.getInt("技能2", 0);
		追加技能 = args.getInt("追加技能", 0);
	}

	private boolean needAppend;

	@Override
	public void onSkillDone(SkillActionCtx action) {
		if (!action.getSkill().cfg.containTag(检测技能标签)) {
			return;
		}
		if (skill.owner.attr.total().hpCurRate() > 检测血量) {
			action.getMove().param.addBrotherSkill(action.getSkill().tid,技能1);
		} else {
			action.getMove().param.addBrotherSkill(action.getSkill().tid,技能2);
			needAppend = true;
		}
	}

	@Override
	public void onRoundEnd(ActionCtx action) {
		if (needAppend) {
			needAppend = false;
			Skill appendSkill = action.getCfg().skill.buildById(skill.owner, 追加技能);
			if (appendSkill != null) {
				action.getRound().addAppendTurn(new AppendTurn(skill.owner, appendSkill));
			}
		}
	}
}
